package com.wtwd.campus.service;

import com.wtwd.campus.common.RespEntity;
import com.wtwd.campus.entity.H5Customer;
import com.wtwd.campus.entity.H5User;

import java.util.List;
import java.util.Map;

/**
 * @Author ldaoliang
 * @Date create in 14:14 2021/7/16
 * @Description
 */
public interface H5Service {

    /**
     * 根据appKey获取H5客户
     *
     * @param appKey
     * @return
     */
    H5Customer getH5CustomerByAppKey(String appKey);

    /**
     * 添加h5用户
     *
     * @param h5CustomerId
     * @param userId
     * @return
     */
    int addH5UserIfAbsent(int h5CustomerId, String userId);

    /**
     * 设备id列表
     *
     * @param h5UserId
     * @return
     */
    List<Integer> deviceIdList(int h5UserId);

    /**
     * 设备列表
     *
     * @param h5UserId
     * @return
     */
    List<Map<String, Object>> deviceList(int h5UserId);

    /**
     * 绑定设备
     *
     * @param h5UserId    h5用户id
     * @param imei        imei号
     * @param studentName 学生姓名
     * @return
     */
    RespEntity bindDevice(int h5UserId, String imei, String studentName);

    /**
     * 解绑设备
     *
     * @param deviceId
     * @param h5UserId
     * @return
     */
    RespEntity unbindDevice(Integer deviceId, Integer h5UserId);

    /**
     * 根据用户id获取客户id
     *
     * @param userId
     * @return
     */
    Integer getCusIdByUserId(Integer userId);

    /**
     * 根据客户id获取h5客户的使用权限时间
     *
     * @param cusId
     * @return
     */
    Long getCusTimeByCusId(Integer cusId);

    /**
     * 修改手机号码
     *
     * @param deviceId
     * @param phone
     * @return
     */
    int modifyPhoneByDeviceId(Integer deviceId, String phone);

    /**
     * 同步设备和用户之间的绑定关系
     * 清除掉之前设备的绑定关系，
     * 清除用户之间的绑定关系
     * 重新建立用户和设备之间的绑定关系
     *
     * @param userId
     * @param deviceId
     * @return
     */
    Integer synchronizationUserDevice(Integer userId, Integer deviceId,String studentName);

    /**
     * 根据h5用户id获取用户信息
     * @param h5UserId
     * @return
     */
    H5User getH5UserById(Integer h5UserId);
}
